package com.wing.order.model.request;

import com.wing.order.model.entity.InventoryInout;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 入库单Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class InventoryInoutForm {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 入库单编号
     */
    private String code;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 出货仓库
     */
    private Long warehouseId;

    /**
     * 客户联系人
     */
    private String customerConcat;

    /**
     * 联系人电话
     */
    private String customerMoble;

    /**
     * 车牌号
     */
    private String carNo;

    /**
     * 物流单号
     */
    private String expressCode;

    /**
     * 物流企业id
     */
    private Long companyId;

    /**
     * 运输方式
     */
    private InventoryInout.TransportType transportType;

    /**
     * 货值
     */
    private BigDecimal total;

    /**
     * 企业id
     */
    private Long enterpriseId;

    /**
     * 省
     */
    private Long province;

    /**
     * 市
     */
    private Long city;

    /**
     * 区
     */
    private Long area;

    /**
     * 详情地址
     */
    private String address;

    /**
     * 状态
     */
    private InventoryInout.Status status;

    /**
     * 刀柜数
     */
    private Long cabNum;

    /**
     * 入库类型
     */
    private InventoryInout.StorageType storageType;

    /**
     * 产品规格ID
     */
    private Long specId;

    /**
     * 产品规格码
     */
    private String specCode;

    /**
     * 产品SKU id
     */
    private Long skuId;

    /**
     * 产品SKU编号
     */
    private String skuCode;

    /**
     * 产品类型
     */
    private String productType;

    /**
     * 单位名称
     */
    private String unitName;

    /**
     * 产品单位id
     */
    private Long unitId;

    /**
     * 产品编号
     */
    private String productCode;

    /**
     * 生产计划编号
     */
    private String productionPlanCode;

    /**
     * 生产计划id
     */
    private Long productionPlanId;

    /**
     * 产品生产部门
     */
    private String productionDepartment;

    /**
     * 产品生产部门id
     */
    private Long productionDepartmentId;

    /**
     * 生产台机工位
     */
    private String productionMachine;

    /**
     * 生产台机工位id
     */
    private Long productionMachineId;

    /**
     * 送料数量
     */
    private Long feedQuantity;

    /**
     * 生产负责人名称
     */
    private String manufactureHeadName;

    /**
     * 生产负责人id
     */
    private Long manufactureHeadId;

    /**
    * 提交时间
    */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime submissionTime;

    /**
     * 送料人
     */
    private String feedingPeople;

    /**
     * AGV送料指令
     */
    private String avgFeedCode;

    /**
    * 入库时间
    */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime storageTime;

    /**
     * 入库送料人
     */
    private Long feedingPeopleId;

    /**
     * 入库单位名称
     */
    private String storageUnitName;

    /**
     * 入库单位id
     */
    private Long storageUnitId;

    /**
     * 包装方案
     */
    private String pageScheme;

    /**
     * 包装方案id
     */
    private Long pageSchemeId;

    private String remark;

    private String warehouseName;
    /**
     * 序号
     */
    private Integer No;
    private Integer day;
    /**
     * 产品分类id
     */
    private Long productTypeId;
    /**
     *  包装SN码数量
     */
    private Integer snNum;
    /**
     * 出入库类型code
     */
    private String inoutTypeCode;
    /**inoutTypeName
     * 入库类型名称
     */
    private String inoutTypeName;

    public interface Add{}

    public interface Update{}
}
